package flyweight

/*
享元是一种结构型设计模式， 它允许你在消耗少量内存的情况下支持大量对象。


    1: 10 个玩家对象各自创建不同的服装对象， 并将其嵌入。 总共会创建 10 个服装对象。
    2: 我们创建两个服装对象：
        单一恐怖分子服装对象： 其将在 5 名恐怖分子之间共享。
        单一反恐精英服装对象： 其将在 5 名反恐精英之间共享。


在享元模式中， 我们会将享元对象存储在 map 容器中。 每当创建共享享元对象的其他对象时， 都会从 map 容器中获取享元对象。
下面让我们来看看此类安排的内部状态和外部状态：
    内部状态： 内部状态的服装可在多个恐怖分子和反恐精英对象间共享。
    外部状态： 玩家位置和玩家所使用的武器就是外部状态， 因为其在每个对象中都是不同的。
*/
